package com.hboxs.asl.wechat.entity;

import com.hboxs.asl.entity.BaseEntity;
import com.hboxs.asl.entity.Member;
import com.hboxs.asl.entity.Order;

import javax.persistence.*;
import java.math.BigDecimal;
import java.sql.Timestamp;

/**
 * Entity -- 微信订单
 */
@Entity
@Table(name = "t_wechat_order")
@SequenceGenerator(name = "sequenceGenerator", sequenceName = "t_wechat_order_sequence")
public class WxOrder extends BaseEntity {
    private static final long serialVersionUID = 796850842149815839L;

    //	/* 会员 */
    private Member member;
    /* 订单详情 */
    private String body;
    /*
     * 交易类型，REG_FEE -- 注册费
     *
     */
    private String attach;
    /* 内部订单号 */
    private String outTradeNo;
    /* 总金额，单位：分 */
    private BigDecimal totalFee;
    /* 开始时间 */
    private Timestamp timeStart;
    /* 商品标签 */
    private String goodsTag;
    /* 支付类型 */
    private String tradeType;
    /* 微信交易流水号 */
    private String transactionId;
    /* 支付结果 */
    private String paymentResult;

    private Order orderxx;

    @OneToOne(fetch = FetchType.LAZY)
    public Order getOrderxx() {
        return orderxx;
    }

    public void setOrderxx(Order order) {
        this.orderxx = orderxx;
    }

    /**
     * 获取会员
     *
     * @return 会员
     */
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(updatable = false)
    public Member getMember() {
        return member;
    }

    /**
     * 设置会员
     *
     * @param member 会员
     */
    public void setMember(Member member) {
        this.member = member;
    }

    /**
     * 获取订单详情
     *
     * @return 订单详情
     */
    public String getBody() {
        return body;
    }

    /**
     * 设置订单详情
     *
     * @param body 订单详情
     */
    public void setBody(String body) {
        this.body = body;
    }

    /**
     * 获取交易类型
     *
     * @return
     */
    public String getAttach() {
        return attach;
    }

    /**
     * 设置交易类型
     *
     * @param attach
     */
    public void setAttach(String attach) {
        this.attach = attach;
    }

    /**
     * 获取内部订单号
     *
     * @return 内部订单号
     */
    public String getOutTradeNo() {
        return outTradeNo;
    }

    /**
     * 设置内部订单号
     *
     * @param outTradeNo 内部订单号
     */
    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    /**
     * 获取总金额
     *
     * @return 总金额，单位：分
     */
    public BigDecimal getTotalFee() {
        return totalFee;
    }

    /**
     * 设置总金额
     *
     * @param totalFee 总金额，单位：分
     */
    public void setTotalFee(BigDecimal totalFee) {
        this.totalFee = totalFee;
    }

    /**
     * 获取开始时间
     *
     * @return 开始时间
     */
    public Timestamp getTimeStart() {
        return timeStart;
    }

    /**
     * 设置开始时间
     *
     * @param timeStart 开始时间
     */
    public void setTimeStart(Timestamp timeStart) {
        this.timeStart = timeStart;
    }

    /**
     * 获取商品标签
     *
     * @return 商品标签
     */
    public String getGoodsTag() {
        return goodsTag;
    }

    /**
     * 设置商品标签
     *
     * @param goodsTag 商品标签
     */
    public void setGoodsTag(String goodsTag) {
        this.goodsTag = goodsTag;
    }

    /**
     * 获取支付类型
     *
     * @return 支付类型
     */
    public String getTradeType() {
        return tradeType;
    }

    /**
     * 设置支付类型
     *
     * @param tradeType
     */
    public void setTradeType(String tradeType) {
        this.tradeType = tradeType;
    }

    /**
     * 获取微信交易流水号
     *
     * @return 微信交易流水号
     */
    public String getTransactionId() {
        return transactionId;
    }

    /**
     * 设置微信交易流水号
     *
     * @param transactionId 微信交易流水号
     */
    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    /**
     * 获取支付结果
     *
     * @return 支付结果
     */
    public String getPaymentResult() {
        return paymentResult;
    }

    /**
     * 设置支付结果
     *
     * @param paymentResult 支付结果
     */
    public void setPaymentResult(String paymentResult) {
        this.paymentResult = paymentResult;
    }
}
